double:

<%
double d = -11.1e1;
double e = 2.71828184;
int    i = 2;
%>
0.0      : <%= 0.0 %> 
.1       : <%= .1 %> 
2.0      : <%= 2.0 %> 
3.       : <%= 3. %> 
4d       : <%= 4d %> 
5.d      : <%= 5.d %> 
6e1      : <%= 6e1 %> 
7e1d     : <%= 7e1d %> 
8.7e+1d  : <%= 8.7e+1d %> 
8.7e+1   : <%= 8.7e+1 %> 
9.8e-20d : <%= 9.8e-20d %> 
9.8e-20  : <%= 9.8e-20 %> 

-0.0      : <%= -0.0 %> 
-.1       : <%= -.1 %> 
-2.0      : <%= -2.0 %> 
-3.       : <%= -3. %> 
- 4d      : <%= - 4d %> 
-5.d      : <%= -5.d %> 
- 6e1     : <%= - 6e1 %> 
-7e1d     : <%= -7e1d %> 
-8.7e+1d  : <%= -8.7e+1d %> 
-9.8e-20d : <%= -9.8e-20d %> 

-2.0     : <%= -2.0 %> 
- -3.    : <%= - -3. %> 
- - -4d  : <%= - - -4d %> 
-d       : <%= -d %> 
- -d     : <%= - -d %> 
-(.5)    : <%= -(.5) %> 
-(-6e10) : <%= -(-6e10) %> 

+2.0     : <%= +2.0 %> 
+ +3.    : <%= + +3. %> 
+ + +4d  : <%= + + +4d %> 
+d       : <%= +d %> 
+ +d     : <%= + +d %> 
+(.5)    : <%= +(.5) %> 
+(+6e10) : <%= +(+6e10) %> 

+ -.1             : <%= + -.1 %> 
- +0.02           : <%= - +0.02 %> 
+ - +3.           : <%= + - +3. %> 
- + -4d           : <%= - + -4d %> 
- - +5e1          : <%= - - +5e1 %> 
+ + -6e+3d        : <%= + + -6e+3d %> 
-2.0e-3d +.3e+14  : <%= -2.0e-3d +.3e+14 %> 
- .2 +0.00003     : <%= - .2 +0.00003 %> 
-(2e100+3.)       : <%= -(2e100+3.) %> 

.2 * .3                    : <%= .2 * .3 %> 
-0.002 * 0.0003            : <%= -0.002 * 0.0003 %> 
-200.0 * -3000.0           : <%= -200.0 * -3000.0 %> 
5e10 / 30e100              : <%= 5e10 / 30e100 %> 
-6e-20 / +3e-160           : <%= -6e-20 / +3e-160 %> 
+7.0e+30  / +3.8e+40       : <%= +7.0e+30 / +3.8e+40 %> 
+8.9e-50d  / +11.128e-200d : <%= +8.9e-50d / +11.128e-200d %> 

2 * 3 / 2.0 : <%= 2 * 3 / 2.0 %> 
2 * 3.0 / 2 : <%= 2 * 3.0 / 2 %> 
2.0 * 3 / 2 : <%= 2.0 * 3 / 2 %> 
3 / 2 * 2.0 : <%= 3 / 2 * 2.0 %> 
3 / 2.0 * 2 : <%= 3 / 2.0 * 2 %> 
3.0 / 2 * 2 : <%= 3.0 / 2 * 2 %> 

3 / 2 * 2.0 + 3 / 2 * 2.0 : <%= 3 / 2 * 2.0 + 3 / 2 * 2.0 %> 
5.0 / (1 + 1)             : <%= 5.0 / (1 + 1) %> 
5 / (1 + 1)               : <%= 5 / (1 + 1) %> 
5 / (1 + 1.0)             : <%= 5 / (1 + 1.0) %> 
5 / (1 - 2.0)             : <%= 5 / (1 - 2.0) %> 
5 / (2 * 2.0)             : <%= 5 / (2 * 2.0) %> 

--d     : <%= --d %> 
-- d    : <%= -- d %> 
+ --d   : <%= + --d %> 
- --d   : <%= - --d %> 
- --d   : <%= - --d %> 
- + --d : <%= - + --d %> 
+ - --d : <%= + - --d %> 
d--     : <%= d-- %> 
d --    : <%= d -- %> 
+ d--   : <%= + d-- %> 
- d--   : <%= - d-- %> 
+ + d-- : <%= + + d-- %> 
- - d-- : <%= - - d-- %> 

++d     : <%= ++d %> 
++ d    : <%= ++ d %> 
+ ++d   : <%= + ++d %> 
- ++d   : <%= - ++d %> 
- ++d   : <%= - ++d %> 
- + ++d : <%= - + ++d %> 
+ - ++d : <%= + - ++d %> 
d++     : <%= d++ %> 
d ++    : <%= d ++ %> 
+ d++   : <%= + d++ %> 
- d++   : <%= - d++ %> 
+ + d++ : <%= + + d++ %> 
- - d++ : <%= - - d++ %> 

- --d - 2 : <%= - --d - 2 %> 
+ --d * 3 : <%= + --d * 3 %> 
- d-- - 2 : <%= - d-- - 2 %> 
+ d-- * 3 : <%= + d-- * 3 %> 
- ++d - 2 : <%= - ++d - 2 %> 
+ ++d * 3 : <%= + ++d * 3 %> 
- d++ - 2 : <%= - d++ - 2 %> 
+ d++ * 3 : <%= + d++ * 3 %> 

--d - --e : <%= --d - --e %> 
d-- - --e : <%= d-- - --e %> 
d-- - e-- : <%= d-- - e-- %> 
--d - e-- : <%= --d - e-- %> 
++d + ++e : <%= ++d + ++e %> 
d++ + ++e : <%= d++ + ++e %> 
d++ + e++ : <%= d++ + e++ %> 
++d + e++ : <%= ++d + e++ %> 

d += d /= 1                   : <%= d += d /= 1 %> 
d += d /= i <<= i -= 1        : <%= d += d /= i <<= i -= 1 %> 
d *= e -= d += e /= 1         : <%= d *= e -= d += e /= 1 %> 
d /= d -= 1 + ( i /= i /= 1 ) : <%= d /= d -= 1 + ( i /= i /= 1 ) %> 
e /= e /= 1                   : <%= e /= e /= 1 %> 
d -= e += d = e *= 100        : <%= d -= e += d = e *= 100 %> 

<% double d21 = 21, d11=11, d6=6, d4=4; %> 

d4 += 1                : <%= d4 += 1 %> 
d4                     : <%= d4 %> 
d4 += d6   = 7         : <%= d4 += d6   = 7 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4  = d6  += 1         : <%= d4  = d6  += 1 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4 += d6  += 1         : <%= d4 += d6  += 1 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4 += d6 += d11 += d21 : <%= d4 += d6 += d11 += d21 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d11                    : <%= d11 %> 

d4 -= 1                : <%= d4 -= 1 %> 
d4                     : <%= d4 %> 
d4 -= d6   = 7         : <%= d4 -= d6   = 7 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4  = d6  -= 1         : <%= d4  = d6  -= 1 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4 -= d6  -= 1         : <%= d4 -= d6  -= 1 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4 -= d6 -= d11 -= d21 : <%= d4 -= d6 -= d11 -= d21 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d11                    : <%= d11 %> 
d4 -= d6 += d11 -= d21 : <%= d4 -= d6 += d11 -= d21 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d11                    : <%= d11 %> 

d4 *= 1                : <%= d4 *= 1 %> 
d4                     : <%= d4 %> 
d4 *= d6   = 7         : <%= d4 *= d6   = 7 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4  = d6  *= 1         : <%= d4  = d6  *= 1 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4 *= d6  *= 1         : <%= d4 *= d6  *= 1 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4 *= d6 *= d11 *= d21 : <%= d4 *= d6 *= d11 *= d21 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d11                    : <%= d11 %> 
d4 *= d6 += d11 -= d21 : <%= d4 *= d6 += d11 -= d21 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d11                    : <%= d11 %> 

d4 /= 1                : <%= d4 /= 1 %> 
d4                     : <%= d4 %> 
d4 /= d6   = 7         : <%= d4 /= d6   = 7 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4  = d6  /= 1         : <%= d4  = d6  /= 1 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4 /= d6  /= 1         : <%= d4 /= d6  /= 1 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d4 /= d6 /= d11 /= d21 : <%= d4 /= d6 /= d11 /= d21 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d11                    : <%= d11 %> 
d4 /= d6 += d11 -= d21 : <%= d4 /= d6 += d11 -= d21 %> 
d4                     : <%= d4 %> 
d6                     : <%= d6 %> 
d11                    : <%= d11 %> 


Double:

Double.MAX_VALUE                              : <%= Double.MAX_VALUE %> 
Double.MIN_VALUE                              : <%= Double.MIN_VALUE %> 
Double.NaN                                    : <%= Double.NaN %> 
Double.POSITIVE_INFINITY                      : <%= Double.POSITIVE_INFINITY %> 
Double.NEGATIVE_INFINITY                      : <%= Double.NEGATIVE_INFINITY %> 
Double.SIZE                                   : <%= Double.SIZE %> 
TODO: Double.isInfinite( 1 )
Double.isInfinite( 1.0 )                      : <%= Double.isInfinite( 1.0 ) %> 
Double.isInfinite( Double.POSITIVE_INFINITY ) : <%= Double.isInfinite( Double.POSITIVE_INFINITY ) %> 
Double.isInfinite( Double.NEGATIVE_INFINITY ) : <%= Double.isInfinite( Double.NEGATIVE_INFINITY ) %> 
Double.isInfinite( Double.NaN )               : <%= Double.isInfinite( Double.NaN ) %> 
Double.isNaN( 1.0 )                           : <%= Double.isNaN( 1.0 ) %> 
Double.isNaN( Double.POSITIVE_INFINITY )      : <%= Double.isNaN( Double.POSITIVE_INFINITY ) %> 
Double.isNaN( Double.NEGATIVE_INFINITY )      : <%= Double.isNaN( Double.NEGATIVE_INFINITY ) %> 
Double.isNaN( Double.NaN )                    : <%= Double.isNaN( Double.NaN ) %> 
Double.parseDouble("1e1")                     : <%= Double.parseDouble("1e1") %> 
Double.toString( 1.0 )                        : <%= Double.toString( 1.0 ) %> 
Double.toString( Double.POSITIVE_INFINITY )   : <%= Double.toString( Double.POSITIVE_INFINITY ) %> 
Double.toString( Double.NEGATIVE_INFINITY )   : <%= Double.toString( Double.NEGATIVE_INFINITY ) %> 
Double.toString( Double.NaN )                 : <%= Double.toString( Double.NaN ) %> 

Double infinities and nan can surprize:
Double.NEGATIVE_INFINITY < Double.NEGATIVE_INFINITY    : <%= Double.NEGATIVE_INFINITY < Double.NEGATIVE_INFINITY %> 
Double.NEGATIVE_INFINITY <= Double.NEGATIVE_INFINITY   : <%= Double.NEGATIVE_INFINITY <= Double.NEGATIVE_INFINITY %> 
Double.NEGATIVE_INFINITY > Double.NEGATIVE_INFINITY    : <%= Double.NEGATIVE_INFINITY > Double.NEGATIVE_INFINITY %> 
Double.NEGATIVE_INFINITY >= Double.NEGATIVE_INFINITY   : <%= Double.NEGATIVE_INFINITY >= Double.NEGATIVE_INFINITY %> 

Double.NEGATIVE_INFINITY < Double.NaN                  : <%= Double.NEGATIVE_INFINITY < Double.NaN %> 
Double.NEGATIVE_INFINITY <= Double.NaN                 : <%= Double.NEGATIVE_INFINITY <= Double.NaN %> 
Double.NEGATIVE_INFINITY > Double.NaN                  : <%= Double.NEGATIVE_INFINITY > Double.NaN %> 
Double.NEGATIVE_INFINITY >= Double.NaN                 : <%= Double.NEGATIVE_INFINITY >= Double.NaN %> 

Double.NEGATIVE_INFINITY < 1                           : <%= Double.NEGATIVE_INFINITY < 1 %> 
Double.NEGATIVE_INFINITY <= 1                          : <%= Double.NEGATIVE_INFINITY <= 1 %> 
Double.NEGATIVE_INFINITY > 1                           : <%= Double.NEGATIVE_INFINITY > 1 %> 
Double.NEGATIVE_INFINITY >= 1                          : <%= Double.NEGATIVE_INFINITY >= 1 %> 

Double.NEGATIVE_INFINITY < Double.POSITIVE_INFINITY    : <%= Double.NEGATIVE_INFINITY < Double.POSITIVE_INFINITY %> 
Double.NEGATIVE_INFINITY <= Double.POSITIVE_INFINITY   : <%= Double.NEGATIVE_INFINITY <= Double.POSITIVE_INFINITY %> 
Double.NEGATIVE_INFINITY > Double.POSITIVE_INFINITY    : <%= Double.NEGATIVE_INFINITY > Double.POSITIVE_INFINITY %> 
Double.NEGATIVE_INFINITY >= Double.POSITIVE_INFINITY   : <%= Double.NEGATIVE_INFINITY >= Double.POSITIVE_INFINITY %> 

